"""
生成随机姓名头像图片的脚本
"""

import os
import random
import requests
from pathlib import Path

# 随机生成100个中文姓名
def generate_chinese_names(count=100):
    """生成随机中文姓名"""
    surnames = [
        '王', '李', '张', '刘', '陈', '杨', '赵', '黄', '周', '吴',
        '徐', '孙', '胡', '朱', '高', '林', '何', '郭', '马', '罗',
        '梁', '宋', '郑', '谢', '韩', '唐', '冯', '于', '董', '萧',
        '程', '曹', '袁', '邓', '许', '傅', '沈', '曾', '彭', '吕',
        '苏', '卢', '蒋', '蔡', '贾', '丁', '魏', '薛', '叶', '阎'
    ]
    
    given_names = [
        '伟', '芳', '娜', '秀英', '敏', '静', '丽', '强', '磊', '军',
        '洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '秀兰', '霞',
        '平', '刚', '桂英', '玉兰', '萍', '毅', '浩', '宇', '轩', '睿',
        '晨', '梓', '子', '俊', '一', '博', '文', '雨', '欣', '悦',
        '佳', '思', '嘉', '怡', '琳', '婷', '慧', '敏', '静', '丽'
    ]
    
    names = []
    for i in range(count):
        surname = random.choice(surnames)
        given_name = random.choice(given_names)
        # 有时候使用双字名
        if random.random() > 0.5:
            given_name += random.choice(given_names)
        names.append(f"{surname}{given_name}")
    
    return names

def generate_avatar_images(names, output_dir):
    """生成头像图片并保存到指定目录"""
    # 确保输出目录存在
    Path(output_dir).mkdir(parents=True, exist_ok=True)
    
    for i, name in enumerate(names):
        # 使用picsum.photos生成随机头像
        avatar_url = f"https://picsum.photos/{name}/100/100.jpg"
        
        try:
            # 下载图片
            response = requests.get(avatar_url, timeout=10)
            response.raise_for_status()
            
            # 保存图片
            filename = f"avatar_{i+1:03d}.jpg"
            filepath = os.path.join(output_dir, filename)
            
            with open(filepath, 'wb') as f:
                f.write(response.content)
            
            print(f"已生成头像: {filename} (姓名: {name})")
            
        except Exception as e:
            print(f"生成头像失败 {name}: {e}")

def main():
    """主函数"""
    # 设置输出目录
    output_dir = "/Users/kangqing/workspace/doc_service/static/images/avatars"
    
    print("开始生成随机姓名头像...")
    
    # 生成100个随机姓名
    names = generate_chinese_names(100)
    print(f"生成了 {len(names)} 个随机姓名")
    
    # 生成头像图片
    generate_avatar_images(names, output_dir)
    
    print("头像生成完成！")

if __name__ == "__main__":
    main()